package cxydmmszl.tmp.t14;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * <li style="color: red;">Prob</li>
 * 旋变字符串
 * <li style="color: green;">Desc</li>
 * 一个字符串可以分解为多种二叉树。如果 str 长度为 1，认为不可分解；
 * 如果 str 长度为 N(N>1),左半部分长度可以为 1~N-1，右半部分为剩下的长度，
 * 然后你可以交换左右两部分。并且左右部分可以按照同样的逻辑，继续分解。
 * 每一个形成的字符串都可以是原字符串的旋变字符串。现在给你两个字符串 str1 和 str2，
 * 判断 str2 是否为 str1 的旋变字符串。
 * <li style="color: green;">Input</li>
 * 输入包括两行，第一行一个字符串，代表 str1(1≤length<sub>str1</sub>≤100)，
 * 第二行也是一个字符串，代表 str2(1≤length<sub>str2</sub>≤100)。
 * <li style="color: green;">Output</li>
 * 如果 str2 是 str1 的旋变字符串请输出 “YES”，否则输出 “NO”。
 * <li style="color: blue;">Link</li> CD133
 *
 * @author habitplus
 * @since 2021/11/25 10:57
 */
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str1 = br.readLine();
        String str2 = br.readLine();

        boolean ans = handle(str1, str2);
        System.out.println(ans ? "Yes" : "No");
    }

    private static boolean handle(String str1, String str2) {
        if (str1 == null || str2 == null || str1.length() < 1 || str1.length() != str2.length())
            return false;
        String str = str2 + str2;
        return str.contains(str1);
    }
}
